import java.util.Scanner;

import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;

/**
 * @author Krzych
 *
 */
public class MojKlient {
	Socket socket = null;
	PrintWriter dane_wychodzace = null;
	BufferedReader dane_przychodzace = null;
	
	
	
	/**
	 * Metoda wysyla dane do serwera oraz odbiera i wyswietla wyniki 
	 */

	
	/**
	 * Klient laczy sie z serwerem o podanym ip oraz portem
	 * @param ip IP serwer
	 * @param port Port na ktorym dziala serwer 
	 */
	public void listenSocket(String ip,int port) {
		try {
			socket = new Socket (ip, port);
			dane_wychodzace = new PrintWriter (socket.getOutputStream(), true);
			dane_przychodzace = new BufferedReader (new InputStreamReader (socket.getInputStream()));
			System.out.println("server says:" + dane_przychodzace.readLine());

			BufferedReader userInputBR = new BufferedReader(new InputStreamReader(System.in));
			String userInput = userInputBR.readLine();

			dane_wychodzace.println(userInput);
		}
		catch (UnknownHostException e) {
			System.out.println ("Unknown host"); 
			System.exit(1);
		}
		catch  (IOException e) {
			System.out.println ("No I/O"); 
			System.exit(1);
		}
	}

	/**
	 * Wlaczanie poloczenia z serwerem 
	 */
	public static void main (String []args) {  
		MojKlient klient = new MojKlient();
        int port=5555;
        String ip="localhost";
        if(args.length>0)
        {
           ip=args[0];
        }
        if (args.length > 1) 
        {
          try
          {
		    port=Integer.parseInt(args[1]);
          }
          catch (NumberFormatException ex)
          {
             System.out.println("Podany port nie jest liczba, serwer dziala na domyslnym porcie 5555");
          }
        }
		klient.listenSocket(ip,port);
		
	}
}
